home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 10
/
FM Towns Free Software Collection 10.iso
/
tos_updt
/
fmcity
/
palcom
/
auto
/
script
/
autosgn.mx
< prev
next >
Wrap
Text File
|
1995-02-24
|
30KB
|
955 lines
//--------------------------------------------------------------------------//
// PALCOM V2.1 L10 //
// 自動通信:オンラインサインアップ //
// //
// CopyRight(C) 1994/11/12 //
// FUJITSU PERSONAL COMPUTER SYSTEMS LIMITED //
// written by C-cube Soft T.Nakamura //
//--------------------------------------------------------------------------//
event @OPEN.EXTERN {
sys.pushCursor( 81 );
sys.global( $setDataList );
sys.global( $sName );
$setDataList = #FALSE;
//--- データの読み込み ---//
$fName = str.join([$$DIR.STANDARD, "BBS\\AUTOTRAN.ENV"], "" );
$sName = str.join([$$DIR.STANDARD, "BBS\\AUTOSGN.DAT"], "" );
$dataList = local.readEnvFile( $fName );
//--- 登録データファイルがある場合は、それを読み込む ---//
if( file.exist( $sName ) == #TRUE ) {
$setDataList = Auto.readEditData( $sName );
}
//--- 設定ダイアログ ---//
loop {
$ret = Auto.sgnEdit( $dataList );
if( $ret == 1 ) { // 設定
Auto.sgnSave( $fName, $dataList );
exit;
} elif( $ret == 2 ) { // 実行
if( $setDataList == #FALSE ) {
$saveXsize = dialog.getDefaultXSize();
dialog.setDefaultXSize( 328 );
sys.pushCursor( 80 );
$ret = dialog.ask([
"━━━━━━ オンラインサインアップ ━━━━━━",
"",
" 登録情報が設定されていないため、手動での登録に ",
"なります。 ",
" 自動でオンラインサインアップを行いたい場合には、",
"「中止」を選択し「登録情報の設定」を行って下さい。",
""], ["中止","続行"] );
sys.popCursor();
dialog.setDefaultXSize( $saveXsize );
if( $ret == 0 ) {
continue;
}
}
Auto.sgnSave( $fName, $dataList );
$ret = Auto.sgnExec( $fName, $dataList );
if( data.getType( $ret ) == #LIST ) {
$id = list.getNth( $ret, 1 );
$pw = list.getNth( $ret, 2 );
$saveXsize = dialog.getDefaultXSize();
dialog.setDefaultXSize( 328 );
sys.pushCursor( 80 );
$btn = dialog.ask([
"━━━━━━ オンラインサインアップ ━━━━━━",
"",
" オンラインサインアップを正常に終了しました。 ",
"",
" 以下の利用者IDと仮パスワードが発行されました。",
" 忘れないように控えておいてください。 ",
"",
str.join([" 利用者ID : ", $id], "" ),
str.join([" 仮パスワード: ", $pw], "" ),
"━━━━━━━━━━━━━━━━━━━━━━━━━",
"",
" 発行された「利用者ID」及び「仮パスワード」を ",
" 自動通信の設定に反映させますか? ",
""], ["いいえ","はい"] );
sys.popCursor();
dialog.setDefaultXSize( $saveXsize );
if( $btn == 1 ) {
list.delNth( $dataList, 22 );
list.putNth( $dataList, 21, $id );
list.delNth( $dataList, 23 );
list.putNth( $dataList, 22, $pw );
Auto.sgnSave( $fName, $dataList );
}
} elif( $ret != #TRUE ) {
$saveXsize = dialog.getDefaultXSize();
dialog.setDefaultXSize( 328 );
sys.pushCursor( 80 );
$btn = dialog.ask([
"━━━━━━ オンラインサインアップ ━━━━━━",
"",
" オンラインサインアップを中断しました。 ",
""],["確認"] );
sys.popCursor();
dialog.setDefaultXSize( $saveXsize );
}
} else {
exit;
}
}
sys.popCursor();
return;
}
event @CLOSE.EXTERN {
if( $OpenFlg == #TRUE ) {
local.comClose();
}
if( dialog.check() == #TRUE ) {
dialog.close();
sys.popCursor();
}
if( $OpenFlg != #UNKNOWN ) {
sys.local( $OpenFlg );
}
event.unmask( @DISCONNECT );
event.unmask( @CONNECT );
sys.startIntRec();
sys.local( $setDataList );
sys.local( $sName );
return;
}
event @ERROR {
if( dialog.check() == #TRUE ) {
dislog.close();
}
sys.startIntRec();
sys.changeCursor( 80 );
}
//------------------------------------------------//
//--- オンラインサインアップ編集ダイアログ ---//
//------------------------------------------------//
function Auto.sgnEdit(
$dataList ) // 設定情報リスト
{
//--- データベース部分の読み込み ---//
if( list.size( list.getNth( $dataList, 14 )) == 0 ) {
$portList1 = [];
$portList2 = [];
$pulseList = [];
foreach( $a, [-1, 0, 1, 2, 3, 4] ) {
$list = gdb.getPortData( $a );
list.putLast( $portList1, list.getNth( $list, 1 ));
$list2 = list.getNth( $list, 2 );
list.delLast( $list2 );
list.delLast( $list2 );
list.putLast( $portList2, $list2 );
list.putLast( $pulseList, gdb.getPulseEnable( $a ));
}
list.delNth( $dataList, 14 );
list.putNth( $dataList, 13, $portList1 );
list.delNth( $dataList, 15 );
list.putNth( $dataList, 14, $portList2 );
list.delNth( $dataList, 16 );
list.putNth( $dataList, 15, $pulseList );
}
$portData = list.getNth( list.getNth( $dataList, 15 ),
list.getNth( $dataList, 1 ) + 2 );
//--- ボタンの設定 ---//
$setBtn = dialog.makeButton( 1, "設定", 0, 0 );
$canBtn = dialog.makeButton( 1, "終了", 0, 0x801D );
$exeBtn = dialog.makeButton( 1, "実行", 0, 0x8012 );
$edtBtn = dialog.makeButton( 1, "登録情報の設定", 0, 0 );
$delBtn = dialog.makeButton( 1, "登録情報の削除", 0, 0x007F );
$modmBtn = dialog.makeButton( 1, " 接続モデムの設定 ", 0, 0 );
$apBtn = dialog.makeButton( 1, "アクセスポイントの設定", 0, 0 );
//--- シリアルナンバーの設定 ---//
$serial = [list.getNth( $dataList, 27 )];
//--- アグリーメントナンバーの設定 ---//
$agreement = [list.getNth( $dataList, 28 )];
//--- 回線種別の設定 ---//
if( list.getNth( $portData, 3 ) == 2 ) {
$line = [2];
$lineSub = 2;
} else {
$line = [1];
$lineSub = 1;
}
//--- ダイアル補助の設定 ---//
$prefix = [list.getNth( $portData, 4 )];
//--- 自局市外局番の設定 ---//
$cityNo = [list.getNth( $dataList, 24 )];
//--- 接続ポートの設定 ---//
$portNo = list.getNth( $dataList, 1 );
$portStrList = ["内蔵", "0","1","2","3","4"];
$portStr = [];
$portList = [];
$port = [2];
$i = 1;
foreach( $a, [-1, 0, 1, 2, 3, 4] ) {
if( com.checkPort( $a ) == #TRUE ) {
list.putLast( $portList, $a );
list.putLast( $portStr, list.getNth( $portStrList, $i ));
if( $portNo == $i - 2 ) {
$port = [$i];
}
}
$i = $i + 1;
}
$portSub = list.get1st( $port );
//--- デフォルトアクセスポイントの設定 ---//
$defAP = list.getNth( $dataList, 25 );
$defAPstr = [""];
//--- リダイアル回数の設定 ---//
$redial = [list.getNth( $dataList, 29 )];
//--- リダイアル待ち時間の設定 ---//
$interval = [list.getNth( $dataList, 30 )];
//--- ダイアログリストの設定 ---//
$dialogList = [ "オンラインサインアップ", 0, -1, -1, $exeBtn,
["シリアルナンバー :", 1025, [8,0], [""], $serial],
["アグリーメントナンバー:", 1025, [8,0], [""], $agreement],
["回線種別 :", 1027, [0], ["ダイアル","プッシュホン"],$line],
["", 1024, [0], [""], [""]],
["ダイアル補助:", 1025, [8,0], [""], $prefix],
["自局市外局番:", 1025, [8,0], [""], $cityNo],
["接続ポート :", 1027, [0], $portStr, $port],
["", $modmBtn, [0], [""], [""]],
["接続アクセスポイント",
1024, [0], [""], [""]],
[" ", 1024, [0], $defAPstr, [""]],
["", $apBtn, [0], [""], [""]],
["", 1024, [0], [""], [""]],
[" リダイアル回数 ", 1031, [""],
[" 回", "99", "000", "1", "0"], $redial],
[" 間隔 ", 1031, [""],
[" 秒", "999", "000", "1", "0"], $interval],
["", $canBtn, [0], [""], [""]],
["", $setBtn, [0], [""], [""]],
["", $exeBtn, [0], [""], [""]],
["", $edtBtn, [0], [""], [""]],
["", $delBtn, [0], [""], [""]]
];
$portChange = #FALSE;
loop {
//--- デフォルトアクセスポイント名の設定 ---//
list.del1st( $defAPstr );
if(( $str = AUTO.getApName( $defAP )) == "" ) {
$defAP = 0;
list.put1st( $defAPstr, "アクセスポイントが登録されていません" );
} else {
list.put1st( $defAPstr, $str );
}
//--- ダイアログの表示 ---//
sys.pushCursor( 80 );
$saveXsize = dialog.getDefaultXSize();
dialog.setDefaultXSize( 410 );
dialog.open( $dialogList );
dialog.setDefaultXSize( $saveXsize );
sys.popCursor();
//--- 設定値の保存 ---//
list.del1st( $serial );
list.put1st( $serial, list.get1st( list.getNth($$DIALOG.RETURN, 2)));
list.del1st( $agreement);
list.put1st( $agreement,list.get1st( list.getNth($$DIALOG.RETURN, 3)));
list.del1st( $line );
list.put1st( $line , list.get1st( list.getNth($$DIALOG.RETURN, 4)));
list.del1st( $prefix );
list.put1st( $prefix, list.get1st( list.getNth($$DIALOG.RETURN, 6)));
list.del1st( $cityNo );
list.put1st( $cityNo, list.get1st( list.getNth($$DIALOG.RETURN, 7)));
list.del1st( $port );
list.put1st( $port, list.get1st( list.getNth($$DIALOG.RETURN, 8)));
list.del1st( $redial );
list.put1st( $redial, list.get1st( list.getNth($$DIALOG.RETURN,12)));
list.del1st( $interval );
list.put1st( $interval, list.get1st( list.getNth($$DIALOG.RETURN,13)));
//--- 回線種別の取り出し ---//
$portData = list.getNth( list.getNth( $dataList, 15 ),
list.getNth( $portList, list.get1st( $port )) + 2 );
$pulseFlg = list.getNth( list.getNth( $dataList, 16 ),
list.getNth( $portList, list.get1st( $port )) + 2 );
if( list.get1st( $line ) == 1 ) {
if( $pulseFlg == #TRUE ) {
$lineSubSub = 1;
} else {
$lineSubSub = 0;
}
} else {
$lineSubSub = 2;
}
//--- 回線種別が変更になった場合 ---//
//--- パルスの指定を変更しておく ---//
if( list.get1st( $line ) != $lineSub ) {
list.delNth( $portData, 3 );
list.putNth( $portData, 2, $lineSubSub );
$lineSub = list.get1st( $line );
}
//--- ポート番号が変更になった場合 ---//
//--- 回線種別の設定を変更しておく ---//
if( list.get1st( $port ) != $portSub ) {
list.delNth( $portData, 3 );
list.putNth( $portData, 2, $lineSubSub );
$portSub = list.get1st( $port );
$portChange = #TRUE;
}
//--- 各種ボタン処理 ---//
$btnNo = list.get1st( $$DIALOG.RETURN );
table( $btnNo ) {
$delBtn {
if( $setDataList == #FALSE ) {
sys.pushCursor( 80 );
dialog.ask([
"━━━━━━━ 登録情報の削除 ━━━━━━━",
"",
" 登録情報が設定されていません。 ",
""],["確認"] );
sys.popCursor();
continue;
}
sys.pushCursor( 80 );
if( dialog.ask([
"━━━━━━━ 登録情報の削除 ━━━━━━━",
"",
" 登録情報を削除します。 ",
""],["取消","実行"] ) == 0 ) {
sys.popCursor();
continue;
}
sys.popCursor();
if( data.getType( $setDataList ) == #LIST ) {
$setDataList = #FALSE;
}
if( file.exist( $sName ) == #TRUE ) {
file.delete( $sName );
}
}
$edtBtn {
$$USER.DEFINED.9 = $setDataList;
$path=str.join([$$DIR.STANDARD,"AUTO\\SCRIPT\\SGNEDIT.MX"],"");
script.openExtern( $path, #FALSE, [] );
if( data.getType( $$USER.DEFINED.9 ) == #LIST ) {
$setDataList = $$USER.DEFINED.9;
}
}
$modmBtn {
Auto.updateConnectData( $dataList,
list.get1st( $serial ),
list.get1st( $agreement ),
list.get1st( $prefix ),
list.get1st( $cityNo ),
list.getNth( $portList, list.get1st( $port )),
$defAP,
list.get1st( $redial ),
list.get1st( $interval ));
$$USER.DEFINED.9 = 1;
$$USER.DEFINED.3 = $dataList;
$path = str.join([$$DIR.STANDARD, "SETUP\\EV_MODEM.MX"], "" );
script.openExtern( $path, #FALSE, [] );
$portChange = #FALSE;
}
$apBtn {
$$USER.DEFINED.9 = $defAP;
$path = str.join([$$DIR.STANDARD,"AUTO\\SCRIPT\\APSEL.MX"],"");
script.openExtern( $path, #FALSE, [] );
if( AUTO.getDialogReturn() == 1 ) {
$defAP = $$USER.DEFINED.9;
}
}
}
//--- 設定及び実行の場合、アクセスポイントが ---//
//--- 設定されていなくてはならない ---//
if(( $btnNo == $setBtn )||( $btnNo == $exeBtn )) {
if( $defAP == 0 ) {
sys.pushCursor( 80 );
dialog.ask([
"━━━━━ オンラインサインアップ ━━━━━",
"",
" アクセスポイントが設定されていません。 ",
""],["確認"] );
sys.popCursor();
continue;
}
//--- アクセスポイントとボーレートの確認 ---//
$path = str.join([$$DIR.STANDARD, "PUBLIC\\APUSER.TRD"],"" );
if( file.exist( $path ) == #TRUE ) {
$trdId = trd.init( 9120, -1 );
trd.load( $trdId, $path );
$apList = list.get1st( AUTO.getAPlist( $trdId, $defAP ));
$apKind = list.getNth( list.getNth( $apList, 7 ), 2 );
$mdData = list.getNth( list.getNth( $dataList, 15 ),
list.getNth( $portList, list.get1st( $port ))+2 );
if(( list.getNth( $mdData, 1 ) == "" )&&
( list.getNth( $mdData, 2 ) == "" )) {
sys.pushCursor( 80 );
dialog.ask([
"━━━━━ オンラインサインアップ ━━━━━",
"",
" 接続モデムが設定されていません。 ",
""],["確認"] );
sys.popCursor();
continue;
}
$mdData = gdb.getModemData3( list.getNth( $mdData, 1 ),
list.getNth( $mdData, 2 ));
$comBps = list.getNth( $mdData, 3 );
trd.end( $trdId );
$flg = #FALSE;
table( $apKind ) {
1 { if( $comBps < 0x01 ) { $flg = #TRUE; }}
2 { if( $comBps < 0x04 ) { $flg = #TRUE; }}
3 { if( $comBps < 0x08 ) { $flg = #TRUE; }}
4 { if( $comBps < 0x08 ) { $flg = #TRUE; }}
5 { if( $comBps < 0x40 ) { $flg = #TRUE; }}
6 { if( $comBps < 0x40 ) { $flg = #TRUE; }}
7 { if( $comBps < 0x40 ) { $flg = #TRUE; }}
8 { if( $comBps < 0x40 ) { $flg = #TRUE; }}
}
if( $flg == #TRUE ) {
$saveXsize = dialog.getDefaultXSize();
dialog.setDefaultXSize( 360 );
sys.pushCursor( 80 );
$ret = dialog.ask([
"━━━━━━━ オンラインサインアップ ━━━━━━━",
"",
" 指定のアクセスポイントは、設定されているモデムの、 ",
" 接続可能な通信速度を超えています。 ",
""],["アクセスポイントの設定を行う","編集に戻る","無視"] );
sys.popCursor();
dialog.setDefaultXSize( $saveXsize );
if( $ret == 1 ) {
continue;
}
if( $ret == 0 ) {
$$USER.DEFINED.9 = $defAP;
$path = str.join([$$DIR.STANDARD,
"AUTO\\SCRIPT\\APSEL.MX"],"");
script.openExtern( $path, #FALSE, [] );
if( AUTO.getDialogReturn() == 1 ) {
$defAP = $$USER.DEFINED.9;
}
continue;
}
}
}
//--- データの一時保存 ---//
Auto.updateConnectData( $dataList,
list.get1st( $serial ),
list.get1st( $agreement ),
list.get1st( $prefix ),
list.get1st( $cityNo ),
list.getNth( $portList, list.get1st( $port )),
$defAP,
list.get1st( $redial ),
list.get1st( $interval ));
//--- 初期化コマンド1~3の変更の確認 ---//
if(( $portChange == #TRUE )&&
( list.getNth( $dataList, 26 ) == #TRUE )) {
$saveXsize = dialog.getDefaultXSize();
dialog.setDefaultXSize( 372 );
sys.pushCursor( 80 );
$ret = dialog.ask([
"━━━━━━━━ オンラインサインアップ ━━━━━━━━",
"",
" 接続ポートを変更した場合、初期化1~3に設定されている ",
"コマンドを、接続されているモデムにあわせる必要があります。",
""],["モデムの設定を行う","編集に戻る","無視"] );
sys.popCursor();
dialog.setDefaultXSize( $saveXsize );
if( $ret == 1 ) {
continue;
}
if( $ret == 0 ) {
$$USER.DEFINED.3 = $dataList;
$$USER.DEFINED.9 = 1;
$path = str.join([$$DIR.STANDARD,"SETUP\\EV_MODEM.MX"],"");
script.openExtern( $path, #FALSE, [] );
continue;
}
}
exit;
} elif( $btnNo == $canBtn ) {
exit;
}
}
//--- 「設定」及び「実行」の場合は設定リストを更新する ---//
if(( $btnNo == $setBtn )||( $btnNo == $exeBtn )) {
if( $btnNo == $setBtn ) {
$ret = 1;
} else {
$ret = 2;
}
} else {
$ret = 0;
}
dialog.delButton( $setBtn );
dialog.delButton( $canBtn );
dialog.delButton( $exeBtn );
dialog.delButton( $modmBtn );
dialog.delButton( $apBtn );
dialog.delButton( $edtBtn );
dialog.delButton( $delBtn );
return( $ret );
}
//---------------------------------//
//--- 接続環境データの更新 ---//
//---------------------------------//
function Auto.updateConnectData(
$dataList, // 設定情報リスト
$serial, // シリアルナンバー
$agreement, // アグリーメントナンバー
$prefix, // 外線確立番号文字列
$cityNo, // 自局市外局番
$port, // ポート番号
$defAP, // デフォルトアクセスポイント
$redial, // リダイアル回数
$interval ) // リダイアル待ち時間
{
list.delNth( $dataList, 27 );
list.putNth( $dataList, 26, $serial );
list.delNth( $dataList, 28 );
list.putNth( $dataList, 27, $agreement );
list.delNth( $dataList, 24 );
list.putNth( $dataList, 23, $cityNo );
list.delNth( $dataList, 1 );
list.putNth( $dataList, 0 , $port );
list.delNth( $dataList, 25 );
list.putNth( $dataList, 24, $defAP );
list.delNth( $dataList, 29 );
list.putNth( $dataList, 28, $redial );
list.delNth( $dataList, 30 );
list.putNth( $dataList, 29, $interval );
$portData = list.getNth( list.getNth( $dataList, 15 ), $port + 2 );
list.delNth( $portData, 4 );
list.putNth( $portData, 3, $prefix );
return;
}
//-----------------------------------------//
//--- 自動通信環境ファイル書き込み ---//
//-----------------------------------------//
function Auto.sgnSave(
$fName, // 設定ファイル名
$dataList ) // 設定情報リスト
{
//--- 自動通信環境ファイルの削除 ---//
if( file.exist( $fName ) == #TRUE ) {
file.delete( $fName );
}
//--- 自動通信環境ファイルのオープン ---//
$fd = file.open( $fName, "", 1 );
$i = 1;
loop {
table( $i ) {
1 { $data = list.getNth( $dataList, 22 ); }
2 { $data = list.getNth( $dataList, 23 ); }
3 { $data = list.getNth( $dataList, 2 ); }
4 { $data = #FALSE; }
5 { $data = #TRUE; }
6 { $data = list.getNth( $dataList, 10 ); }
7 { $data = list.getNth( $dataList, 1 ); }
8 { $data = list.getNth( $dataList, 9 ); }
9 { $data = list.getNth( $dataList, 26 ); }
10 { $data = list.getNth( $dataList, 11 ); }
11 { $data = list.getNth( $dataList, 12 ); }
12 { $data = list.getNth( $dataList, 13 ); }
13 { $data = list.getNth( $dataList, 17 ); }
14 { $data = list.getNth( $dataList, 18 ); }
15 { $data = list.getNth( $dataList, 31 ); }
16 { $data = list.getNth( $dataList, 19 ); }
17 { $data = list.getNth( $dataList, 20 ); }
18 { $data = list.getNth( $dataList, 32 ); }
19 { $data = list.getNth( $dataList, 21 ); }
20 { $data = list.getNth( $dataList, 24 ); }
21 { $data = list.getNth( $dataList, 25 ); }
22 { $data = list.getNth( $dataList, 27 ); }
23 { $data = list.getNth( $dataList, 28 ); }
24 { $data = list.getNth( $dataList, 29 ); }
25 { $data = list.getNth( $dataList, 30 ); }
}
if( data.getType( $data ) == #STRING ) {
$str = $data;
} else {
$str = data.toString( $data );
}
$str = str.join([$str, "\n"], "" );
//--- 書き込み ---//
file.putString( $fd, $str );
$i = $i + 1;
if( $i == 26 ) {
exit;
}
}
file.close( $fd );
//--- データベース部分の書き込み ---//
$portNo = list.get1st( $dataList );
$portList1 = list.getNth( list.getNth( $dataList, 14 ), $portNo + 2 );
$portList2 = list.getNth( list.getNth( $dataList, 15 ), $portNo + 2 );
gdb.setPortData( $portNo, $portList1, $portList2 );
// //--- プロファイルへの書き込み ---//
// $prFname = char( sys.bootDrive?() + 0x41 );
// if( $prFname != "Q" ) {
// $prFname = str.join([$prFname, ":\\FMCITY\\GENERAL.INI"], "" );
// $prfId = prf.open( $prFname );
//
// //--- 保存ディレクトリの書き込み ---//
// prf.writeString( $prfId, "PALCOM", "LOGPATH",
// list.getNth( $$USER.DEFINED.3, 21 ));
//
// //--- 画面色の書き込み ---//
// $wkList = [];
// foreach( $a, [list.getNth( $$USER.DEFINED.3, 17 ),
// list.getNth( $$USER.DEFINED.3, 18 ),
// list.getNth( $$USER.DEFINED.3, 31 )] ) {
// list.putLast( $wkList, data.toString( $a ));
// }
// $string = str.join( $wkList, "\t" );
// prf.writeString( $prfId, "PALCOM", "AUTOCOLOR", $string );
//
// prf.close( $prfId );
// }
return;
}
//----------------------------------------//
//--- オンラインサインアップの実行 ---//
//----------------------------------------//
function Auto.sgnExec(
$fName, // 設定ファイル名
$dataList ) // 設定情報リスト
{
dialog.openProg([[]," 初 期 設 定 中 で す ",[]],"",#FALSE );
sys.global( $OpenFlg );
$OpenFlg = #FALSE;
//--- 環境の設定を行う ---//
if(( $ret = local.loadAutoEnv( $fName, "", #TRUE, 0, 0 )) == #FALSE ) {
return( #TRUE );
}
//--- アクセスポイント情報の取得 ---//
$apId = trd.init( 9120, -1 );
$path = str.join([$$DIR.STANDARD, "PUBLIC\\APUSER.TRD"],"" );
trd.load( $apId, $path );
$apList = AUTO.getAPlist( $apId, list.getNth( $dataList, 25 ));
trd.end( $apId );
if( list.size( $apList ) == 0 ) {
dialog.close();
$saveXsize = dialog.getDefaultXSize();
dialog.setDefaultXSize( 352 );
sys.pushCursor( 80 );
dialog.ask(["━━━━━━━ オンラインサインアップ ━━━━━━━",
"",
" 設定されているアクセスポイントの情報が存在しません。",
" アクセスポイントの設定を再度行ってください。 ",
""],["確認"] );
sys.popCursor();
dialog.setDefaultXSize( $saveXsize );
return( #TRUE );
}
$apList = list.get1st( $apList );
//--- 電話番号の組み立て ---//
$telNo = "";
if(( list.getNth( $apList, 2 ) != list.getNth( $dataList, 24 ))&&
( list.getNth( $apList, 2 ) != "" )) {
$telNo = str.join([list.getNth( $apList, 2 ), "-"], "" );
}
$telNo = str.join([$telNo, list.getNth( $apList, 6 )], "" );
//--- MNP 設定の有効/無効チェック ---//
$mnpFlg = #FALSE;
foreach( $a, list.getNth( $apList, 5 )) {
if( $a == "MNP" ) {
$mnpFlg = #TRUE;
exit;
}
}
//--- オンラインサインアップでローカルな設定値の設定 ---//
$$BBS.TEL1 = $telNo;
$$MDM.EC = $mnpFlg;
$$BBS.REDIAL = list.getNth( $dataList, 29 );
$$BBS.REDIAL.WAIT = list.getNth( $dataList, 30 );
$$TRM.SET.RSTABLE = #FALSE;
$$BBS.ID = list.getNth( $dataList, 27 );
$$BBS.PASSWORD = list.getNth( $dataList, 28 );
if(( gdb.getMnpClass( $$COM.PORT ) >= 5 )&&( $mnpFlg == #TRUE )) {
table( list.getNth( list.getNth( $apList, 7 ), 2 )) {
1 { $$COM.BAUD = 1200; }
2 { $$COM.BAUD = 2400; }
3 { $$COM.BAUD = 4800; }
4 { $$COM.BAUD = 4800; }
5 { $$COM.BAUD = 9600; }
6 { $$COM.BAUD = 9600; }
7 { $$COM.BAUD = 9600; }
8 { $$COM.BAUD = 19200; }
}
} else {
$comBps = gdb.getComBps( $$COM.PORT );
table( list.getNth( list.getNth( $apList, 7 ), 2 )) {
1 { $$COM.BAUD = 300; }
2 { $$COM.BAUD = 1200; }
3 { $$COM.BAUD = 2400; }
4 {
if( $comBps & 0x08 ) {
$$COM.BAUD = 2400;
} else {
$$COM.BAUD = 1200;
}
}
5 { $$COM.BAUD = 9600; }
6 { $$COM.BAUD = 9600; }
7 { $$COM.BAUD = 9600; }
8 {
if( $comBps & 0x0100 ) {
$$COM.BAUD = 19200;
} else {
$$COM.BAUD = 9600;
}
}
}
}
event.mask( @DISCONNECT );
event.mask( @CONNECT );
sys.stopIntRec();
dialog.close();
//--- ダイアルスクリプト起動 ---//
$path = str.join([$$DIR.STANDARD, "SCRIPT\\MANUDIAL.MX"], "" );
script.openExtern( $path, #FALSE, [] );
if( $$USER.DEFINED.9 != #TRUE ) {
sys.startIntRec();
$retCode = #TRUE;
goto DISCONNECT;
}
$OpenFlg = #TRUE;
//--- 自動ログイン(オンラインサインアップ)スクリプト起動 ---//
$path = str.join([$$DIR.STANDARD, "AUTO\\SCRIPT\\NIFSGN.MX"], "" );
table( list.getNth( $apList, 3 )) {
"ROAD1" { $$USER.DEFINED.9 = 1; }
"ROAD2" { $$USER.DEFINED.9 = 2; }
"ROAD3" { $$USER.DEFINED.9 = 3; }
"ROAD4" { $$USER.DEFINED.9 = 4; }
}
script.openExtern( $path, #FALSE, [] );
if( $$USER.DEFINED.9 != #TRUE ) {
sys.startIntRec();
local.comClose();
$backXsize = dialog.getDefaultXSize();
dialog.setDefaultXSize( 228 );
sys.pushCursor( 80 );
if( $$USER.DEFINED.9 == #ERROR ) {
dialog.ask(["━━ オンラインサインアップ ━━",
"",
" 自動ログインに失敗しました。 ",
""],["確認"] );
} elif( $$USER.DEFINED.9 == #TOUT ) {
dialog.ask(["━━ オンラインサインアップ ━━",
"",
" センターが混雑しているため接続を",
"中断しました。 ",
" 時間をおいて再度接続して下さい。",
""],["確認"] );
} else {
dialog.ask(["━━ オンラインサインアップ ━━",
"",
" 自動ログインを中断しました。 ",
""],["確認"] );
}
sys.popCursor();
dialog.setDefaultXSize( $backXsize );
$retCode = #TRUE;
goto DISCONNECT;
}
sys.enableMenu( #TRUE );
sys.enableButton( #TRUE );
sys.pushCursor( 80 );
if( $setDataList != #FALSE ) {
sys.pushCursor( 80 );
dialog.openProg([[]," 自 動 サ イ ン ア ッ プ 実 行 中 ",[]],
" 中断 ", #FALSE );
$$USER.DEFINED.9 = $setDataList;
$path = str.join([$$DIR.STANDARD, "AUTO\\SCRIPT\\SGNCOM.MX"], "" );
script.openExtern( $path, #FALSE, [] );
if( $$USER.DEFINED.9 == #FALSE ) { // 中断した
dialog.close();
sys.popCursor();
sys.popCursor();
$retCode = #FALSE;
goto DISCONNECT;
} elif( $$USER.DEFINED.9 == #ERROR ) { // エラー終了
sys.popCursor();
$retCode = #ERROR;
goto DISCONNECT;
}
} else {
//--- ツールバーに終了ボタンを表示する ---//
obj.setButton( 1, #SYSTEM, "BTN_SGN_LINECUT" );
}
//--- 回線が切断されるまでループする ---//
$ret = 0;
$id = "";
$pw = "";
$priority.fore = $$PRIORITY.FORE;
$priority.back = $$PRIORITY.BACK;
$$PRIORITY.FORE = 0;
$$PRIORITY.BACK = 0;
comtable( $a, 0 ) {
"01+" { local.comClose(); }
"*\w\w" {
time.delay( 1 );
com.putString( "OFF\r",[] );
}
"利用者IDは、\n" {
$id = com.getString( 0, #TRUE, #TRUE );
$id = str.replaceAll( $id, " ", "" );
$id = str.replaceAll( $id, " ", "" );
$id = str.replaceAll( $id, "です。\n", "" );
$id = str.zenToHan( $id );
$ret = $ret + 1;
}
"パスワードは、\n" {
$pw = com.getString( 0, #TRUE, #TRUE );
$pw = str.replaceAll( $pw, " ", "" );
$pw = str.replaceAll( $pw, " ", "" );
$pw = str.replaceAll( $pw, "です。\n", "" );
$pw = str.zenToHan( $pw );
$ret = $ret + 1;
}
"改行キーを押して下さい\n>\w\w" {
com.putString("\r", [] );
}
"Enter User-ID --->\w\w" {
com.putString( str.join([$id, "\r"], "" ), [] );
}
"Enter Password --->\w\w" {
com.putString( str.join([$pw, "\r"], "" ), [] );
}
"--登録終了--" {
$ret = $ret + 1;
}
":\w\w" {
if( $ret == 3 ) {
com.putString( "E\r", [] );
}
}
interval {
if( com.isCD( $$COM.PORT ) == #FALSE ) {
$OpenFlg = #FALSE;
exit;
}
}
}
$$PRIORITY.FORE = $priority.fore;
$$PRIORITY.BACK = $priority.back;
sys.disableButton( #TRUE );
sys.disableMenu( #TRUE );
//--- ボタン消去 ---//
obj.setButton( 0, #SYSTEM, "BTN_SGN_LINECUT" );
//--- 後始末 ---//
DISCONNECT:
if( dialog.check() == #TRUE ) {
dialog.close();
sys.popCursor();
}
sys.popCursor();
if( com.isDTR( $$COM.PORT ) == #TRUE ) {
local.comClose();
}
$OpenFlg = #FALSE;
sys.local( $OpenFlg );
sys.startIntRec();
local.restoreAutoEnv();
event.unmask( @DISCONNECT );
event.unmask( @CONNECT );
if( $ret == 3 ) {
return( [$id, $pw] );
} else {
return( $retCode );
}
}
//--------------------------------------//
//--- 登録情報ファイルの読み込み ---//
//--------------------------------------//
function Auto.readEditData(
$fName ) // ファイル名
{
$fp = file.open( $fName, "", 1 );
$dataList2 = [];
$i = 1;
loop {
$str = file.getString( $fp );
if( $str == #FALSE ) {
$saveXsize = dialog.getDefaultXSize();
dialog.setDefaultXSize( 288 );
sys.pushCursor( 80 );
dialog.ask(["━━━━━━ 登録情報の設定 ━━━━━━",
"",
" 保存されている設定の内容に異常があります。",
" 現在設定されている内容を消去します。 ",
""],["確認"] );
sys.popCursor();
dialog.setDefaultXSize( $saveXsize );
file.close( $fp );
file.delete( $fName );
return( #FALSE );
}
list.putLast( $dataList2, str.replaceAll( $str, "\n", "" ));
$i = $i + 1;
if( $i == 25 ) {
exit;
}
}
file.close( $fp );
return( $dataList2 );
}